<?php

if (!defined('BASEPATH'))
    exit('No direct script access allowed');

class M_file extends CI_Model {

    function __construct() {
        parent::__construct();
    }

    /**
     * 获取该目录下面的所有的子目录
     * @param type $file_dir
     * @return type
     */
    function dir_list($file_dir, $type) {
        $dir_list = $file_list = array();
        $dir = dir($file_dir);
        //列出 images 目录中的文件
        while (($file = $dir->read()) !== false) {
            if ($file == '.' || $file == '..') {
                continue;
            }
         
            // $file = iconv('gbk','utf-8',$file);
           
            $temp_file = $file_dir . '/' . $file;
            $last = substr($temp_file, strrpos($temp_file, '.') + 1);
           
            if (is_dir($temp_file)) {
                $dir_list[] = $file;
            } elseif (in_array($last, $type)) {
                $file_list[] = $file;
            }
        }
        $dir->close();

        return array_merge_recursive($dir_list, $file_list);
    }

    function get_file($path) {
        $path = str_replace('//', '', $path);
        $path = str_replace('../', '', $path);
        $path = str_replace('./', '', $path);

        $last = substr($path, strlen($path) - 1);
        if ($last == '/') {
            $path = substr($path, 0, -1);
        }
        return $path;
    }

    function deldir($dir) {
        //先删除目录下的文件：
        $dh = opendir($dir);
        while ($file = readdir($dh)) {
            if ($file != "." && $file != "..") {
                $fullpath = $dir . "/" . $file;
                if (!is_dir($fullpath)) {
                    unlink($fullpath);
                } else {
                    deldir($fullpath);
                }
            }
        }
        closedir($dh);
        //删除当前文件夹：
        if (rmdir($dir)) {
            return true;
        } else {
            return false;
        }
    }

}
